package com.itheima.staticmethod;

//静态方法设计工具类,每个类都是用来完成1个功能的
//静态方法的调用直接用类名调就行,不用像实例方法那样创建对象,节省内存

public class VerifyCodeUtil {

    //工具类没有创建对象的必要性,所以建议私有化构造器
    private VerifyCodeUtil(){}

    //获取指定位数的验证码
    public static String getCode(int n) {   //n代表验证码位数
        //1、定义一个字符串，用于保存生成的验证码
        String code = "";
        //2、使用循环生成指定位数的验证码
        for (int i = 0; i < n; i++) {
            //3、为当前位置随机生成一个数字，表示当前位置随机的字符类型
            int type = (int)(Math.random() * 3);
            switch (type) {
                //数字
                case 0:
                    int num=(int)(Math.random() * 10);  //0-9
                    code = code + num;  //加号是拼接作用
                    break;
                //小写字母
                case 1:
                    int num1=(int)(Math.random() * 26); //0-25
                    char ch=(char)('a' + num1);
                    code = code + ch;
                    break;
                //大写字母
                case 2:
                    int num2=(int)(Math.random() * 26);
                    char chUpper=(char)('A' + num2);
                    code = code + chUpper;
                    break;
            }
        }
        return code;
    }
}
